ההרגשה הכללית לא טובה. דחו לי את הראיון ביום, באמצע היום שקדם לראיון המקורי.
הראיון עצמו נערך באופן ספייס עם המון רעש. המראין לא ממש הוביל את הראיון, כמו כן לא נכח לכל אורכו והשאיר אותי לבד והלך לעיסוקיו מספר פעמים.
שאלות מתוך הראיון
היו 2 שאלות אחת יותר לכיוון אלגוריתם והשנייה למימוש:
1. יש מילון של מילים. צריך לקבל קלט טקסטואלי ולדעת האם הקלט הוא מילה במילון או פרמוטציה של מילה במילון. כמובן במינימום סיבוכיות. המילון נתון.
2. כתוב פונקציה המקבלת 2 סטרינגים ומחזירה האם האחד הוא פרמוטציה של השני. (לממש)
תשובות
הוסף תשובה
|
לצפיה בתשובות
מאי 2016
1. אני כתבתי את השאלה יחסית ברור לאיך שהיא נשאלה. אני לא הצלחתי לענות. הוא לא ממש הסביר לי מה התשובה. אחרי חיפוש באינטרנט הבנתי שהדרך הטובה ביותר הוא לממש מילון בhash כשכל מילה היא Linked list לרשימת כל הפרמוטציות של המילה. אך אני מודה שזה עדיין לא ברור לי.
2. לעשות מערך של 256 אינטיג'רים. לאפס את כולם, ואז לעבור על הסטרינג הראשון ולהוסיף 1 לכל מקום במערך ע"ס הערך האסקי של התא.
לאחר מכן לעבור על המערך ולהוריד 1 מכל מקום.
בסוף בודקים האם יש לנו מערך שכולו אפסים. אם כן אז זה פרמוטציה.
הרעיון מאחורי זה הוא שבפרמוטציה אין חשיבות לסדר אלה לכמות ולכך שכל האותיות מופיעות.
ינואר 2017
התשובה שלך לשאלה הראשונה לא נכונה. יש פתרון יותר טוב למעלה.
התשובה לשאלה השניה: שאני אבין אתה מציע סוג של bucket-sort בשביל לגלות פרמוטציה? זה יכול לעבוד (וזה גם בעלות של o(max(n,numberOfCharacters=26) ככה שזה די מרשים) עם זה גם רקורסיה פשוטה נותנת פתרון.